package com.deer.wms.base.system.service.zh;

import com.deer.wms.base.system.model.zh.*;
import com.deer.wms.common.core.service.Service;

import java.util.List;

public interface ZhMesService extends Service<ShelfPlan,Integer> {
    /**
     *同步单晶信息
     * @author 李帅辰
     * @date 2021/6/11 12:48
     * @return java.lang.String
     */
    String SysnBoxItem(ZhBox zhBox);

    /**
     * WMS同步缓存线状态给MES，NG或者OK
     * @author 李帅辰
     * @date 2021/6/10 15:24
     * @return java.lang.String
     */
    String CacheLineMes(CacheLine cacheLine);

    /**
     * WMS同步晶棒检验数据给MES
     * @param quality
     * @author 李帅辰
     * @date 2021/6/10 17:27
     * @return boolean
     */
    String QualityMes(Quality quality);

    /**
     * 晶棒入缓存线，发送位置信息给MES
     * @param
     * @author 李帅辰
     * @date 2021/6/10 18:07
     * @return boolean
     */
    String CacheLineLocationMes(CacheLine cacheLine);

    /**
     * 晶棒缓存线同步库存信息给MES
     * @param billInUpdateBox
     * @author 李帅辰
     * @date 2021/6/11 12:12
     * @return java.lang.String
     */
    String BillInUpdateBoxMes(BillInUpdateBox billInUpdateBox);

    /**
     * INT_MES_WMS_07 单晶库出库完成，WMS上报出库完成
     * @author 李帅辰
     * @date 2021/6/11 12:45
     * @return java.lang.String
     */
    String CancelAccount(CacheLine cacheLine);


    /****下面代码是成品库和MES对接的相关接口的测试数据****/

    /**
     * 查询成品托信息
     * @author 申紫微
     * @date 14:24 2021/6/18
     * @params carrierId 成品托id
     * @return com.deer.wms.base.system.model.zh.ZhResultMESFinishProduct
     **/
    ZhResultMESFinishProduct SelectFinishProduct(String carrierId);

    String NMStockInCPK(ZhParamSyncMESFinishProductInStorage param);
    /**
     * INT_MES_WMS_10  WMS修改NG，预留
     * @author 李帅辰
     * @date 2021/6/18 18:37
     * @return java.lang.String
     */
    String NMChangeNG(ShelfPlan shelfPlan);


    /**
     * INT_MES_WMS_11  MES修改NG，预留
     * @author 李帅辰
     * @date 2021/6/18 18:45
     * @return java.lang.String
     */
    ZhResult NMChangeNGMEsToWms(ZhParam zhParam);

    String NMRunDevice(ZhParamMESRunDevice param);
}
